1. Field
The present application relates to systems and methods for redistributing data in a relational database.
2. Description of the Related Art
A relational database can include data in the form of representations, which can refer herein to tables (or “relations”) and indices. A relation is a data structure which consists of a heading and an ordered or unordered set of tuples which share the same type. An index is a copy of one part of a table that can improve the speed of data retrieval operations by ordering the data in that part of the table. Representations can be organized into rows and columns. A database system can include a plurality of nodes, each of which can hold a portion of the data in the database. A node is a physical hardware component, which can include one or more processing elements, memory elements, and/or storage drives. Data in a representation can be stored entirely on one node. Alternatively, the data of a representation can be distributed among a plurality of nodes in sub-tables, which can be referred to as slices and can be spread throughout the plurality of nodes. By distributing data in a relational database across the slices, the scalability, reliability, availability and/or performance of the relational database can be improved.
There is a need for improved systems and methods of redistributing data in a relational database system. Additionally, there is a need for improving the performance of database queries in multi-node database systems.